home *** CD-ROM | disk | FTP | other *** search
/ Team Palmtops 7 / Palmtops_numero07.iso / WinCE / SDKWindowsCE / HandHeldPCPro30 / sdk.exe / Jupiter SDK / data1.cab / MFC_Samples / banner / metrics.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-02-19  |  1.8 KB  |  73 lines

  1. #if !defined(AFX_METRICS_H__ACA52AAB_9CE1_11D1_87E0_006097BA8D75__INCLUDED_)
  2. #define AFX_METRICS_H__ACA52AAB_9CE1_11D1_87E0_006097BA8D75__INCLUDED_
  3.  
  4. #if _MSC_VER >= 1000
  5. #pragma once
  6. #endif // _MSC_VER >= 1000
  7. // Metrics.h : header file
  8. //
  9.  
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CBannerMetrics window
  12.  
  13. class CBannerMetrics
  14. {
  15. public:
  16.     int m_nPixelsPerInchH, m_nPixelsPerInchV;
  17.  
  18.     CBannerMetrics(CDC *pDC, int nZoomIndex = -1)
  19.     {
  20.         double lfZoom = (double)Zoom(nZoomIndex)/10000.0;
  21.         m_nPixelsPerInchH = (int)(lfZoom * pDC->GetDeviceCaps(LOGPIXELSX));
  22.         m_nPixelsPerInchV = (int)(lfZoom * pDC->GetDeviceCaps(LOGPIXELSY));
  23.     }
  24.  
  25.     CSize Inch()
  26.         { return CSize(m_nPixelsPerInchH, m_nPixelsPerInchV); }
  27.     CSize BorderGap()      
  28.         { return CSize(m_nPixelsPerInchH/4, 0); }
  29.     CSize BorderThickness() 
  30.         { return CSize(max(1,m_nPixelsPerInchH/8), max(1,m_nPixelsPerInchH/8)); }
  31.  
  32.     enum en_zooms // zoom [0,2] * 10000
  33.     {
  34.         ZOOM_16th = 625,    // 0
  35.         ZOOM_8th  = 1250,   // 1
  36.         ZOOM_4th  = 2500,   // 2
  37.         ZOOM_2th  = 5000,   // 3
  38.         ZOOM_1x   = 10000,  // 4
  39.         ZOOM_2x   = 20000,  // 5
  40.     }; 
  41.  
  42.  
  43. static int Zoom(int nIndex)
  44. {
  45.     switch(nIndex)
  46.     {
  47.         case 0:  return ZOOM_16th;
  48.         case 1:  return ZOOM_8th;
  49.         case 2:  return ZOOM_4th;
  50.         case 3:  return ZOOM_2th;
  51.         case 4:  return ZOOM_1x;
  52.         case 5:  return ZOOM_2x;
  53.         default: return ZOOM_1x;
  54.     }
  55. }
  56.  
  57. static double ZoomFrac(int nIndex)
  58.         { return (double)Zoom(nIndex)/10000; }
  59.  
  60. static int DefaultZoom()
  61.         { return 2; }
  62.  
  63. static int NumZooms()
  64.         { return 6; }
  65. };
  66.  
  67. /////////////////////////////////////////////////////////////////////////////
  68.  
  69. //{{AFX_INSERT_LOCATION}}
  70. // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
  71.  
  72. #endif // !defined(AFX_METRICS_H__ACA52AAB_9CE1_11D1_87E0_006097BA8D75__INCLUDED_)
  73.